/**
 * 
 */
package br.edu.flf.teoriagrafos.visao.controle.listeners;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.io.File;

import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

import br.edu.flf.teoriagrafos.controle.core.ControleGrafo;
import br.edu.flf.teoriagrafos.controle.geral.vos.ArquivoVO;
import br.edu.flf.teoriagrafos.controle.geral.vos.grafo.Grafo;
import br.edu.flf.teoriagrafos.testes.ThreadPrincipal;
import br.edu.flf.teoriagrafos.visao.controle.ControleArquivo;
import br.edu.flf.teoriagrafos.visao.controle.ControleVisao;
import br.edu.flf.teoriagrafos.visao.janela.Moldura;
import br.edu.flf.teoriagrafos.visao.painel.GrafoPainel;

/**
 * Gerencia os eventos do menu Arquivo.
 * 
 * @author Rafael Santiago
 * Data: 06/07/2011 - Hora: 10:19:34
 */
public class ArquivoActionListener implements ActionListener{
	
	
	@Override
	public void actionPerformed(ActionEvent e) {
		Moldura janela = ThreadPrincipal.moldura;
		
		if("abrir".equals(e.getActionCommand())) {
			
			
			JFileChooser explorer = new JFileChooser();
			int result = explorer.showOpenDialog(janela);
			
			if(result == JFileChooser.APPROVE_OPTION){
				File arquivo = explorer.getSelectedFile();			
				JOptionPane.showMessageDialog(janela, "Arquivo: " + arquivo.getAbsolutePath());
				
				ControleArquivo arquivoDAO = ControleArquivo.getInstance();
				ArquivoVO arquivoVO = arquivoDAO.lerArquivoTxt(new File("C:\\grafos\\grafo.txt"));
				
				ControleGrafo controleGrafo = ControleGrafo.getInstance();
				Moldura.grafoVO = controleGrafo.criaGrafo(arquivoVO);				
				
				janela.setContentPane(new GrafoPainel());
				
				ControleVisao controleVisao = ControleVisao.getInstance();
				controleVisao.configuraGrafoTela(Moldura.grafoVO, (GrafoPainel) janela.getContentPane());
				
				
				
				
				
			}			
		}
		
		if("sair".equals(e.getActionCommand())){			
			new AndarilhoWindowListener().windowClosing(new WindowEvent(janela, WindowEvent.WINDOW_CLOSING));
		}
		
	}

}
